bitkeeper revision 1.1732 (42ba7fc5JvRaJiT14LMkB8SUdohfeA)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 23 Jun 2005 09:24:21 +0000 (09:24 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 23 Jun 2005 09:24:21 +0000 (09:24 +0000)
commitd67f8a3d018196db2d8182a63b64b5ad97396e6b
treec198cc363d920ab0f0fbfdc0496e538621485bc2
parent07b33c0a712d674f3de1a92028da0ba85ecd7867
bitkeeper revision 1.1732 (42ba7fc5JvRaJiT14LMkB8SUdohfeA)

The attached patch now allows x86_64 xenlinux to run 32-bit x86 binaries
as the native x86_64 Linux does. I checked LTP using 32-bit binaries,
and got the same results on the native x86_64 Linux. At this point, 'int
0x80' is used for system calls, as it's unlikely that the fast systems
(sysenter or syscall) are significantly faster under the current
trampoline mechanism. However, it should be easy to replace
vsyscall-int80 with the fast system calls if one wants to do so (look at
USE_INT80 in the patch).

I found bugs with LDT handling in x86_64 Xen/XenLinux (exposed by 32-bit
LTP testcases fork05 and modify_ldt02), and the bugs have been fixed by
a separate patch in the next email:=20
[PATCH] [x86_64] Fixing LDT handling with x86_64 Xen

Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
.rootkeys
linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64
linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64
linux-2.6.11-xen-sparse/arch/xen/x86_64/ia32/Makefile [new file with mode: 0644]
linux-2.6.11-xen-sparse/arch/xen/x86_64/ia32/ia32entry.S [new file with mode: 0644]
linux-2.6.11-xen-sparse/arch/xen/x86_64/ia32/syscall32.c [new file with mode: 0644]
linux-2.6.11-xen-sparse/arch/xen/x86_64/ia32/vsyscall-int80.S [new file with mode: 0644]
linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S
linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c
linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/xen_entry.S [new file with mode: 0644]
linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/fault.c